hex 0 value value_620_0 " /bandit/gc/via-cuda" open-dev to value_620_0 5 constant mac_rom_constant_4F5_5
6 constant mac_rom_constant_4F4_6 7 constant mac_rom_constant_4F3_7 10 constant mac_rom_constant_501_10
ff constant mac_rom_constant_4F9_FF 40 constant const_57c_40 1000 constant const_585_1000
: colon_definition_function_5f6_3+ 3 + ; : colon_string_5be_reg " reg" ; : colon_string_5a7_read " read" ;
: colon_string_5a8_write " write" ; : colon_string_5bf_assigned-addresses " assigned-addresses" ;
: colon_string_5e3_iso6429-1983-colors " iso6429-1983-colors" ; -1 value value_cd6_-1_regs
-1 value value_cd7_-1_phys-fb-address 0 value value_cd8_0_width 0 value value_cd9_0_height
0f301b000 constant const_cda_0f301b000_RADACAL-base 0 mac_rom_constant_501_10 field field_cdb_>C.CUR-LINE
mac_rom_constant_501_10 field field_cdc_>C.VFPEQ mac_rom_constant_501_10 field field_cdd_>C.VFP
mac_rom_constant_501_10 field field_cde_>C.VAL mac_rom_constant_501_10 field field_cdf_>C.VBP
mac_rom_constant_501_10 field field_ce0_>C.VBPEQ mac_rom_constant_501_10 field field_ce1_>C.VSYNC
mac_rom_constant_501_10 field field_ce2_>C.VHLINE mac_rom_constant_501_10 field field_ce3_>C.PIPED
mac_rom_constant_501_10 field field_ce4_>C.HPIX mac_rom_constant_501_10 field field_ce5_>C.HFP
mac_rom_constant_501_10 field field_ce6_>C.HAL mac_rom_constant_501_10 field field_ce7_>C.HBWAY
mac_rom_constant_501_10 field field_ce8_>C.HSP mac_rom_constant_501_10 field field_ce9_>C.HEQ
mac_rom_constant_501_10 field field_cea_>C.HLFLN_>C.HLFLN mac_rom_constant_501_10 field field_ceb_>C.HSERR
mac_rom_constant_501_10 field field_cec_>C.CNTTST mac_rom_constant_501_10 field field_ced_>C.TEST
mac_rom_constant_501_10 field field_cee_>C.GBASE mac_rom_constant_501_10 field field_cef_>C.ROW-WORDS
mac_rom_constant_501_10 field field_cf0_>C.MON-SENSE mac_rom_constant_501_10 field field_cf1_>C.ENABLE
mac_rom_constant_501_10 field field_cf2_>C.GSC-DIVIDE mac_rom_constant_501_10 field field_cf3_>C.REFRESH-COUNT
mac_rom_constant_501_10 field field_cf4_>C.INT-ENABLE mac_rom_constant_501_10 field field_cf5_>C.INT-STATUS drop 0
mac_rom_constant_501_10 field field_cf6_>R.REG-ADDR mac_rom_constant_501_10 field field_cf7_>R.CRSR-PALETTE
mac_rom_constant_501_10 field field_cf8_>R.REG-DATA mac_rom_constant_501_10 field field_cf9_>R.COLOR-PALETTE drop
create create_word_function_cfa " "(0000 00AA 0000 00AA 00AA 5500 0000 AAAA 00AA 00AA AAAA AAAA)" $c,
" "(AAAA AAFF 0000 00FF 00FF FF00 0000 FFFF 00FF 00FF FFFF FFFF)" $c, create create_word_function_cfb 0e1b0210 , 415 w, 412 w,
52 w, 2b w, 4 w, 418 w, 41a w, 48 w, 1ae w, 189 w, 49 w, 1f w, 1af w, 10 w, 0d8 w, 190 w, 2 w, 280 w, 1e0 w,
create create_word_function_cfc 17250210 , 40d w, 402 w, 42 w, 22 w, 2 w, 418 w, 41a w, 48 w, 18e w, 181 w, 41 w, 2f w, 18f w,
18 w, 0c8 w, 160 w, 2 w, 280 w, 1e0 w, create create_word_function_cfd 2b , create_word_function_cfb , 17 ,
create_word_function_cfc , here 40 , create_word_function_cfb , constant const_cfe : colon_definition_function_cff_SENSE!
." SENSE! " dup 3 u.r cr value_cd6_-1_regs field_cf0_>C.MON-SENSE rl! 1 ms ; : colon_definition_function_d00_SENSE@
value_cd6_-1_regs field_cf0_>C.MON-SENSE rl@ ." SENSE@ " dup 3 u.r cr ; : colon_definition_function_d01_MON-SENSE
38 colon_definition_function_cff_SENSE!
colon_definition_function_d00_SENSE@ mac_rom_constant_4F4_6 >> mac_rom_constant_4F3_7 and dup mac_rom_constant_4F4_6 < if 40 or
else drop 18 colon_definition_function_cff_SENSE! colon_definition_function_d00_SENSE@ 2 >> 30 and
28 colon_definition_function_cff_SENSE!
colon_definition_function_d00_SENSE@ dup 4 >> 4 and swap mac_rom_constant_4F5_5 >> 8 and or or
30 colon_definition_function_cff_SENSE! colon_definition_function_d00_SENSE@ mac_rom_constant_4F3_7 >> 3 and or then
38 colon_definition_function_cff_SENSE! ; : colon_definition_function_d02 dup 2+ swap w@ ; : colon_definition_function_d03
const_cda_0f301b000_RADACAL-base field_cf9_>R.COLOR-PALETTE rb@ ; : colon_definition_function_d04
const_cda_0f301b000_RADACAL-base field_cf9_>R.COLOR-PALETTE rb! ; : colon_definition_function_d05
const_cda_0f301b000_RADACAL-base field_cf6_>R.REG-ADDR rb! ; : colon_definition_function_d06 const_cda_0f301b000_RADACAL-base
field_cf8_>R.REG-DATA rb@ ; : colon_definition_function_d07 const_cda_0f301b000_RADACAL-base field_cf8_>R.REG-DATA rb! ;
: colon_definition_function_d08 colon_definition_function_d05 colon_definition_function_d06 ; : colon_definition_function_d09
colon_definition_function_d05 colon_definition_function_d07 ; : colon_definition_function_d0a 0 colon_definition_function_d05
300 0 do create_word_function_cfa i 30 mod + c@ colon_definition_function_d04 loop ; : colon_definition_function_d0b 20
colon_definition_function_d09 1 21 colon_definition_function_d09 0 10 colon_definition_function_d09 0 11
colon_definition_function_d09 ; 8 buffer: buffer_d0c_8_athens-data " "(0122 50FF FF)" buffer_d0c_8_athens-data swap move
8 buffer: buffer_d0d_8_athens-rsp : colon_definition_function_d0e_write-IIC buffer_d0c_8_athens-data mac_rom_constant_4F5_5
colon_string_5a8_write value_620_0 $call-method drop buffer_d0d_8_athens-rsp 3 colon_string_5a7_read value_620_0 $call-method
drop ; : colon_definition_function_d0f_init-ATHENS 4 1 do
i buffer_d0c_8_athens-data colon_definition_function_5f6_3+ c! buffer_d0c_8_athens-data 4+ c!
colon_definition_function_d0e_write-IIC loop ; : colon_definition_function_d10_delay 8 0 do
value_cd6_-1_regs field_ced_>C.TEST rl@ drop loop ; : colon_definition_function_d11_ping-CONTROL cr ." [ ping-CONTROL ! " .s
value_cd6_-1_regs field_ced_>C.TEST rl! colon_definition_function_d10_delay 4 0 do i 1 and 3 << 8 0 do
value_cd6_-1_regs field_ced_>C.TEST rl@ ." @ " .s 8 invert and over or ." ! " .s value_cd6_-1_regs field_ced_>C.TEST rl! loop
drop loop colon_definition_function_d10_delay ." ] ping-CONTROL " .s ; : colon_definition_function_d12_reset-CONTROL
433 colon_definition_function_d11_ping-CONTROL 1 value_cd6_-1_regs field_cf2_>C.GSC-DIVIDE rl! ;
: colon_definition_function_d13_enable-CONTROL 33 colon_definition_function_d11_ping-CONTROL ; : colon_definition_function_d14
dup @ lbsplit colon_definition_function_d0f_init-ATHENS colon_definition_function_d0b cell+ mac_rom_constant_501_10 0 do
colon_definition_function_d02 value_cd6_-1_regs field_cdc_>C.VFPEQ i 4 << + rl! loop colon_definition_function_d02
value_cd6_-1_regs field_cf2_>C.GSC-DIVIDE rl! colon_definition_function_d02 dup to value_cd8_0_width
value_cd6_-1_regs field_cef_>C.ROW-WORDS rl! w@ to value_cd9_0_height 31 0 2 and or value_cd6_-1_regs field_cf1_>C.ENABLE rl!
0 value_cd6_-1_regs field_cee_>C.GBASE rl! 1e5 value_cd6_-1_regs field_cf3_>C.REFRESH-COUNT rl!
0 value_cd6_-1_regs field_cf4_>C.INT-ENABLE rl! ; : colon_definition_function_d15_is-install
colon_string_5bf_assigned-addresses get-my-property if ." no REG property" abort then begin dup 0> while decode-int
mac_rom_constant_4F9_FF and >r decode-int drop decode-int >r 8 - swap 8 + swap r> r> case 14 of to value_cd6_-1_regs endof 18
of 0 + to value_cd7_-1_phys-fb-address endof swap drop endcase repeat 2drop value_cd6_-1_regs dup const_585_1000 _i_g do-map
colon_definition_function_d12_reset-CONTROL colon_definition_function_d01_MON-SENSE dup const_cfe ! create_word_function_cfd
begin 2dup @ <> while 8 + repeat nip 4+ @ colon_definition_function_d14 colon_definition_function_d0a
colon_definition_function_d13_enable-CONTROL value_cd7_-1_phys-fb-address dup value_cd8_0_width value_cd9_0_height *
const_57c_40 do-map default-font set-font value_cd8_0_width value_cd9_0_height over 14 - char-width / over 14 - char-height /
fb8-install value_cd8_0_width #columns char-width * - 2/ to window-left value_cd9_0_height #lines char-height * - 2/
to window-top value_cd7_-1_phys-fb-address to frame-buffer-adr ; : colon_definition_function_d16_is-remove
value_cd7_-1_phys-fb-address value_cd9_0_height value_cd8_0_width * do-unmap value_cd6_-1_regs const_585_1000 do-unmap ;
: color@ colon_definition_function_d05 colon_definition_function_d03 colon_definition_function_d03
colon_definition_function_d03 ; : color! colon_definition_function_d05 rot colon_definition_function_d04 swap
colon_definition_function_d04 colon_definition_function_d04 ; : set-colors swap colon_definition_function_d05 3 * 0 ?do dup i +
c@ colon_definition_function_d04 loop drop ; : get-colors swap colon_definition_function_d05 3 * 0 ?do
colon_definition_function_d03 over i + c! loop drop ; : draw-rectangle { local_0 local_1 local_2 local_3 local_4 ; local_5 }
local_1 value_cd8_0_width * local_2 + value_cd7_-1_phys-fb-address + -> local_5 local_0 local_4 0 ?do local_5 local_3 0 ?do
over c@ over c! 1 1 d+ loop drop local_5 value_cd8_0_width + -> local_5 loop drop ; : fill-rectangle
{ local_0 local_1 local_2 local_3 local_4 ; local_5 } local_1 value_cd8_0_width * local_2 + value_cd7_-1_phys-fb-address +
-> local_5 local_4 0 ?do local_5 local_3 0 ?do local_0 over c! 1+ loop drop local_5 value_cd8_0_width + -> local_5 loop drop ;
: read-rectangle { local_0 local_1 local_2 local_3 local_4 ; local_5 } local_1 value_cd8_0_width * local_2 +
value_cd7_-1_phys-fb-address + -> local_5 local_0 local_4 0 ?do local_5 swap local_3 0 ?do over c@ over c! 1 1 d+ loop nip
local_5 value_cd8_0_width + -> local_5 loop drop ; ['] colon_definition_function_d15_is-install is-install
['] colon_definition_function_d16_is-remove is-remove
